.. _cmxPmCfgSetMioProperty: cmxPmCfgSetMioProperty ================================ -------------------------------- SYNOPSYS ````````````` .. code-block:: none VT_I4 cmxPmCfgSetMioProperty ([in] VT_I4 BoardID, [in] VT_I4 NodeId, [in] VT_I4 Channel, [in] VT_I4 PropId, [in] VT_I4 PropVal ) DESCRIPTION ````````````` - cmxPmCfgSetMioProperty() 함수는 각종 모션 입출력 신호에 대한 환경을 설정합니다. 이 함수는 다양한 I/O 신호의 환경을 설정하는데 공통적으로 사용하는 함수입니다. PropId에 따라 어떠한 환경을 설정할 지를 결정하게 됩니다. \ - 이 함수의 사용과 호출에 있어, 제공된 ㈜커미조아의 함수 헤더 Visual Basic 에서는 함수의 첨두어 cmx 가 붙지 않습니다. PARAMETER ````````````` ▶ BoardID : 사용자가 설정한 디바이스(보드) ID. ▶ NodeId : 노드 번호. 노드 번호는 3부터 시작합니다. ▶ Channel : 축 번호. 통합 축으로 관리되는 축 번호를 의미하며, 상수 값으로 0 (Zero Based) 이상, 최대 통합 축 개수 - 1 이하의 값을 축 번호로 설정할 수 있습니다. ▶ PropId : 어떠한 환경에 대하여 설정 혹은 반환할 것인지를 설정합니다. 이 값에 대해서는 아래 표를 참조하시기 바랍니다. ▶ PropVal : PropId로 지정된 환경에 대해 설정 혹은 반환합니다. .. csv-table:: :widths: 10 90 :header-rows: 1 :stub-columns: 0 PropId, Meaning & PropVal "| cmxMPID_ALM_LOGIC ", "Alarm(ALM) 신호의 입력 로직입니다. 설정 및 반환되는 PropVal은 다음과 같습니다. | - 0 (cmxLOGIC_A): A 접점 방식 => 평상시 Open 감지되면 Close 되는 스위치 방식 | - 1 (cmxLOGIC_B): B 접점 방식 => 평상시 Close 감지되면 Open 되는 스위치 방식" "| cmxMPID_ALM_MODE ", "Alarm 입력이 ON 되어 해당 축의 모션 작업이 정지할 때 정지되는 방식을 설정합니다 설정 및 반환되는 PropVal은 다음과 같습니다. | - 0 : 즉시 정지 | - 1 : 감속 후 정지" "| cmxMPID_CMP_LOGIC ", "위치비교출력(CMP) 신호의 출력 방식을 설정합니다. | - 0 (Active low) : 평상시 HIGH 상태를 유지. 트리거 시점에서 LOW로 | 떨어졌다가 다시 HIGH로 올라갑니다. | - 1(Active high) : 평상시 LOW 상태를 유지. 트리거 시점에서 HIGH로 | 올라갔다가 다시 LOW로 떨어집니다 " "| cmxMPID_DR_LOGIC ", "-/+ DR 신호의 입력 로직을 설정합니다. 설정 및 반환되는 PropVal은 다음과 같습니다. | - 0 (cmxLOGIC_A) : A접점 방식 | - 1 (ccmxLOGIC_B) : B접점 방식" "| cmxMPID_EL_LOGIC ", "-/+ EL 신호의 입력 로직을 설정합니다. 설정 및 반환되는 PropVal은 다음과 같습니다. | - 0 (cmxLOGIC_A) : A접점 방식 | - 1 (ccmxLOGIC_B) : B접점 방식" "| cmxMPID_EL_MODE ", "-/+ EL 신호가 ON되어 정지할 때 정지 방식을 설정합니다. 설정 및 반환되는 PropVal은 다음과 같습니다. | - 0 : 즉시 정지 | - 1 : 감속 후 정지" "| cmxMPID_ERC_LOGIC ", "ERC 신호의 출력 로직을 설정합니다. 설정 및 반환되는 PropVal은 다음과 같습니다. | - 0 (cmxLOGIC_A) : A접점 방식 | - 1 (ccmxLOGIC_B) : B접점 방식" "| cmxMPID_ERC_OUT ", "원점복귀 완료 시에 ERC 출력 여부를 설정합니다. 설정 및 반환되는 PropVal은 다음과 같습니다. | - 0 (cmxFALSE) : 원점복귀 완료 시에 ERC 출력 없음. | - 1 (cmxTRUE) : 원점복귀 완료 시에 ERC 출력. " "| cmxMPID_EZ_LOGIC ", "EZ(엔코더 Z상) 신호의 입력 로직을 설정합니다. 설정 및 반환되는 PropVal은 다음과 같습니다. | - 0 (cmxLOGIC_A) : A접점 방식 | - 1 (ccmxLOGIC_B) : B접점 방식. " "| cmxMPID_INP_EN ", "INP 신호 입력 활성화 여부를 설정합니다. 설정 및 반환되는 PropVal은 다음과 같습니다. | - 0 (cmxFALSE) : INP 비활성 | - 1 (cmxTRUE) : INP 활성 => Command 출력이 완료되더라도 INP 신호가 | ON되기 전까지는 작업이 완료되지 않은 것으로 간주. " "| cmxMPID_INP_LOGIC ", "INP(Inposition) 신호의 입력 로직을 설정합니다. 설정 및 반환되는 PropVal은 다음과 같습니다. | - 0 (cmxLOGIC_A) : A접점 방식 | - 1 (ccmxLOGIC_B) : B접점 방식. " "| cmxMPID_LTC_LOGIC ", "LTC(Latch) 신호의 입력 로직을 설정합니다. 설정 및 반환되는 PropVal은 다음과 같습니다. | - 0 (cmxLOGIC_A) : A접점 방식 | - 1 (ccmxLOGIC_B) : B접점 방식. " "| cmxMPID_LTC_LTC2SRC ", "두 번째 LATCH COUNTER의 대상 카운터를 설정합니다. 설정 및 반환되는 PropVal은 다음과 같습니다. | - 0 : Deviation counter value | - 1 : Preset speed of command pulse " "| cmxMPID_ORG_LOGIC ", "ORG(원점 센서) 신호의 입력 로직을 설정합니다. 설정 및 반환값의 PropVal은 다음과 같습니다. | - 0 (cmxLOGIC_A) : A접점 방식 | - 1 (ccmxLOGIC_B) : B접점 방식. " "| cmxMPID_SD_EN ", "SD(Start of Deceleration) 신호의 입력 상태를 설정합니다. 설정 및 반환되는 PropVal은 다음과 같습니다. | - 0 (cmxFALSE) : SD 입력을 비활성화 합니다. | - 1 (cmxTRUE) : SD 입력을 활성화 합니다. 활성화 되었을 때 SD 신호에 따른 | 동작 방식은 cmxMPID_SD_LATCH 와 cmxMPID_SD_MODE 설정 값에 의해 결정됩니다. " "| cmxMPID_SD_LOGIC ", "SD(Start of Deceleration) 신호의 입력 로직을 설정합니다. 설정 및 반환되는 PropVal은 다음과 같습니다. | - 0 (cmxLOGIC_A) : A접점 방식 | - 1 (ccmxLOGIC_B) : B접점 방식. " "| cmxMPID_SD_LATCH ", "SD(Start of Deceleration) 신호를 래치(Latch)할 것인지에 대한 속성값입니다. 설정 및 반환되는 PropVal은 다음과 같습니다. | - 0 (cmxFALSE) : SD가 ON되어 감속중이거나 초기속도로 운전 중일 때 | SD신호가 다시 OFF상태로 변경되면 작업속도까지 다시 가속됩니다. | - 1 (cmxTRUE) : SD가 ON상태에서 OFF상태로 바뀌어도 작업속도로 가속하지 않습니다. " "| cmxMPID_SD_MODE ", "SD 신호에 따른 동작 모드를 설정합니다. 설정 및 반환되는 PropVal은 다음과 같습니다. | - 0 : SD신호가 ON되면 초기속도까지 감속합니다(정지하지 않음). | - 1 : SD신호가 ON되면 감속 후 정지합니다. " "| cmxMPID_STA_MODE ", "STA 신호 모드를 설정합니다. 설정 및 반환되는 PropVal은 다음과 같습니다. | - 0 : STA 입력 신호는 무시되며, 이동 명령이 내려지면 바로 이동을 시작합니다. | - 1 : 이동 명령이 내려져도 바로 이동을 시작하지 않고, STA 신호가 ON이 되면 이동을 시작합니다. " "| cmxMPID_STA_TRG ", "STA 신호가 ON되는 형태를 설정합니다. 설정 및 반환되는 PropVal은 다음과 같습니다. | - 0 : Level (LOW) => STA 신호가 LOW LEVEL일때 ON | - 1 : Falling Edge => STA 신호가 HIGH상태에서 LOW상태로 천이될 때 ON " "| cmxMPID_STP_MODE ", "STP 신호 모드를 설정합니다. 설정 및 반환되는 PropVal은 다음과 같습니다. | - 0 : Ignore STP => STP 입력 신호 무시 | - 1 : Immediate stop => STP 입력이 ON되면 즉시 정지 | - 2 : Stop after decel => STP 입력이 ON되면 감속 후 정지 " "| cmxMPID_CLR_CNTR ", "CLR 신호가 입력되었을 때 CLEAR 되도록 할 모션컨트롤러의 카운터를 선택합니다. 이 값은 4비트의 값으로 설정하며 각 비트는 다음과 같이 각 카운터의 클리어 여부를 설정합니다. | - Bit 0 : Command counter의 클리어 여부를 설정 | - Bit 1 : Feedback counter의 클리어 여부를 설정 | - Bit 2 : Deviation counter의 클리어 여부를 설정 | - Bit 3 : General counter의 클리어 여부를 설정 " "| cmxMPID_CLR_SIGTYPE ", "CLR 신호의 신호 형태를 설정합니다. 설정 및 반환되는 PropVal은 다음과 같습니다. | - 0: Falling edge => 스위치가 Open 상태에서 Close되는 순간에 카운터가 클리어 됩니다. | - 1 : Rising edge => 스위치가 Close 상태에서 Open되는 순간에 카운터가 클리어 됩니다. | - 2 : Low level => 스위치가 Close되어 있는 동안에는 계속 카운터가 클리어 됩니다. | - 3 : High level => 스위치가 Open되어 있는 동안에는 계속 카운터가 클리어 됩니다. " "| cmxMPID_CMP_PWIDTH ", "CMP 출력은 One-shot pulse로 출력되는데, 출력되는 펄스의 폭을 조절할 수 있습니다. 설정 및 반환되는 PropVal은 다음과 같습니다. | - 0: 트리거 시점의 Command 펄스의 펄스 폭과 동일한 펄스 폭을 가짐 | - 양수: 이 값에 1.5us 가 곱해진 값이 펄스 폭이 됩니다. 즉, 이 값을 1로하면 | - 1.5us, 2로하면 3us...와 같이 됩니다. " "| cmxMPID_ERC_ONTIME ", "ERC 출력 펄스의 펄스 폭을 설정합니다. 설정 및 반환되는 PropVal은 다음과 같습니다. | - 0 => 12us, 1 => 102us, 2 => 409us, 3 => 1.6ms, 4 => 13ms, 5 => 52ms, 6 => 104ms, 7=> Logic Level Output " "| cmxMPID_SVON_LOGIC ", "서보온(Servo-On) 신호의 출력 로직을 설정합니다. 설정 및 반환되는 PropVal은 다음과 같습니다. | - 0 (cmxLOGIC_A) : A 접점 방식 | - 1 (cmxTRUE) : B 접점 방식 " "| cmxMPID_ERC_OUT_EL ", "-/+ EL 신호가 ON 되어 정지할 때 ERC 출력 발생 여부를 설정합니다. 설정 및 반환되는 PropVal은 다음과 같습니다. | - 0 (cmxFALSE): ERC 출력을 발생하지 않습니다. | - 1 (cmxTRUE): ERC 출력을 발생합니다. " "| cmxMPID_CNT_D_SRC ", "Deviation(편차) 카운터의 입력 소스(Input Source)를 선택합니다. 이 값은 4 비트의 값으로 설정하며 각 비트는 다음과 같습니다. | - 0 : 출력 펄스와 EA/EB 단자를 통한 입력 카운트 | - 1 : 출력 펄스와 PA/PB 단자를 통한 입력 카운트 | - 2 : EA/EB 단자와 PA/PB 단자를 통한 입력 카운트 " "| cmxMPID_CNT_G_SRC ", "General(범용) 카운터의 입력 소스(Input Source)를 선택합니다. 이 값은 4 비트의 값으로 설정하며 각 비트는 다음과 같습니다. | - 0 : 출력 펄스 | - 1 : EA/EB 단자를 통한 입력 카운트 | - 2 : PA/PB 단자를 통한 입력 카운트 | - 3 : CLK 카운트를 2로 나눈 값을 입력 카운트로 설정 " "| cmxMPID_LTC_TRGMODE ", "LATCH COUNTER 의 트리거 모드를 설정합니다. 설정 및 반환되는 PRopVal 은 다음과 같습니다. | - 0 (ccmxLTM_LTC) : LTC 입력 신호에 의해서 포지션 래치가 수행됩니다. | - 1 (ccmxLTM_ORG) : ORG 입력 신호에 의해서 포지션 래치가 수행됩니다. " "| cmxMPID_SLIM_EN ", "Software Limit 기능 사용 여부를 설정합니다. 설정 및 반환되는 PropVal은 다음과 같습니다. | - 0 : Software Limit 기능을 사용하지 않습니다. | - 1 : Software Limit 기능을 사용합니다. " "| cmxMPID_OUT_MODE ", "Command(지령) 펄스 출력 모드를 선택합니다. 설정 및 반환되는 PropVal은 다음과 같습니다. | - 0 (ccmxOMODE_PDIR0) : Pulse & Dir 0 | - 1 (ccmxOMODE_PDIR1) : Pulse & Dir 1 | - 2 (ccmxOMODE_PDIR2) : Pulse & Dir 2 | - 3 (ccmxOMODE_PDIR3) : Pulse & Dir 3 | - 4 (ccmxOMODE_CWCCW0) : CW & CCW 0 | - 5 (ccmxOMODE_CWCCW0) : CW & CCW 1 " "| cmxMPID_IN_MODE ", "Feedback(인코더) 펄스 입력 모드를 선택합니다. 설정 및 반환되는 PropVal은 다음과 같습니다. | - 0 (ccmxIMODE_AB1X) : 1X A/B | - 1 (ccmxIMODE_AB2X) : 2X A/B | - 2 (ccmxIMODE_AB4X) : 4X A/B | - 3 (ccmxIMODE_CWCCW) : CW/CCW | - 4 (ccmxIMODE_STEP) : Step Mode " "| cmxMPID_IN_INV ", "Feedback Count 값의 UP/DOWN 방향을 반대로 할 것인지를 선택합니다. 설정 및 반환되는 PropVal은 다음과 같습니다. | - 0 (cmxFALSE) : Feedback 카운터 UP/DOWN 방향 유지. | - 1 (cmxTRUE) : Feedback 카운터 UP/DOWN 방향 반대. " "| cmxMPID_CEMG_EN ", "EMG(Emergency) 신호 입력 활성화 여부를 설정합니다. 설정 및 반환되는 PropVal은 다음과 같습니다. | - 0 (cmxFALSE) : EMG 비활성 | - 1 (cmxTRUE) : EMG 활성 " .. image:: ../../res/14-1.jpg .. image:: ../../res/14-2.jpg RETURN VALUE ````````````` .. csv-table:: :widths: 10 90 :header-rows: 1 :stub-columns: 0 Value, Meaning 음수, 수행 실패 0(ERR_NONE), 수행 성공 EXAMPLE ``````````````` .. code-block:: c++ :linenos: :emphasize-lines: 5 C/C++ #include “ComiRTEX_SDK.h” #include “ComiRTEX_SDK_Def.h” long nChannel = 0;//0번 축을 선택합니다. Long BoardID = 0; long nElLogic = 0; long nAlmLogic = 0; long nOrgLogic = 0; //0번 축의 MIO설정을 변경합니다. cmxCfgSetMioProperty(BoardID, 3, nChannel, ccmxMPID_EL_LOGIC, ccmxLOGIC_B ); // EL 로직 설정 cmxCfgSetMioProperty(BoardID, 3, nChannel, ccmxMPID_ALM_LOGIC, ccmxLOGIC_B ); // ALM 로직 설정 cmxCfgSetMioProperty(BoardID, 3, nChannel, ccmxMPID_ORG_LOGIC, cmxLOGIC_A ); // ORG 로직 설정 //PropId 를 통해서 변경하고자 하는 옵션을 선택 할 수 있습니다. //0번 축의 MIO설정을 반환합니다. cmxCfgGetMioProperty(BoardID, 3, nChannel, ccmxMPID_EL_LOGIC, &nElLogic ); cmxCfgGetMioProperty(BoardID, 3, nChannel, ccmxMPID_ALM_LOGIC, &nAlmLogic ); cmxCfgGetMioProperty(BoardID, 3, nChannel, ccmxMPID_ORG_LOGIC, &nOrgLogic ); //PropId 를 통해서 반환할 옵션을 선택 할 수 있습니다.